package com.hspedu.static_;

public class StaticMethodDetail {
    public static void main(String[] args) {
        D.hi();//静态方法可以通过类名.方法名调用

        D d = new D();
        d.sum();//非静态方法则不可以，需要实例化后，通过对象名进行调用
        //D.sum;
    }
}

class D{
    int n1 = 100;
    private static int n2 = 200;
    public void sum(){//非静态方法

    }

    public  static void hi(){//静态方法，类方法
        //类方法中不允许使用和对象有关的关键字
        //比如this，super  普通方法(成员方法)可以
//        System.out.println(this.n1);

    }

    //静态方法只能访问静态成员
    public static void hello(){
        hi();
//        sum();
        System.out.println(n2);
//        System.out.println(this.n2); 在类方法中不能使用this，super关键字
//        System.out.println(n1); 静态方法只能访问静态成员（静态的属性和方法）
    }

//    普通成员方法，既可以访问 非静态成员，也可以访问
    public void s1(){
        hi();
        hello();
        sum();
        System.out.println(n1);
        System.out.println(n2);
    }

}